package com.zenithmind.library.service;

import com.zenithmind.common.result.Result;

/**
 * 作者统计服务接口
 * 遵循接口隔离原则：只包含统计相关的方法
 * 
 * @author ZenithMind
 * @since 2024-06-14
 */
public interface AuthorStatisticsService {

    /**
     * 更新作者作品数量
     * 
     * @param authorId 作者ID
     * @return 更新结果
     */
    Result<Void> updateAuthorBookCount(String authorId);

    /**
     * 增加作者作品数量
     * 
     * @param authorId 作者ID
     * @return 更新结果
     */
    Result<Void> incrementAuthorBookCount(String authorId);

    /**
     * 减少作者作品数量
     * 
     * @param authorId 作者ID
     * @return 更新结果
     */
    Result<Void> decrementAuthorBookCount(String authorId);

    /**
     * 更新作者总借阅次数
     * 
     * @param authorId 作者ID
     * @return 更新结果
     */
    Result<Void> updateAuthorTotalBorrowCount(String authorId);

    /**
     * 增加作者总借阅次数
     * 
     * @param authorId 作者ID
     * @return 更新结果
     */
    Result<Void> incrementAuthorTotalBorrowCount(String authorId);
}
